/****************************************************************
 * Fulguro
 * Copyright (C) 2004 Christophe Clienti
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 ***************************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __FLGR_MORPHO_BASE_FAST_H
#define __FLGR_MORPHO_BASE_FAST_H


#include <flgrCoreDll.h>
#include <flgrCoreData.h>


  EXPORT_LIB void flgr2d_erode_8_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_8_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_dilate_8_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_8_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_erode_6_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_6_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_dilate_6_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_6_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_erode_4_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_erode_4_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_dilate_4_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_dilate_4_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);




  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_8_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_8_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_8_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);





  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_6_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_6_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_6_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);





  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_inner_4_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_outer_4_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);

  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_gradient_thick_4_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);





  EXPORT_LIB void flgr2d_erode_square_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_square_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_dilate_square_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_square_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_erode_cross_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_cross_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_dilate_cross_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_cross_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_erode_hexa_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_hexa_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_dilate_hexa_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_hexa_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_erode_octagon_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_erode_octagon_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_dilate_octagon_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_dilate_octagon_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);


  EXPORT_LIB void flgr2d_median_8_connexity_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);
  EXPORT_LIB void flgr2d_median_8_connexity_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc);



  EXPORT_LIB void flgr2d_open_square_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_square_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_square(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_open_cross_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_cross_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_cross(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_open_hexa_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_hexa_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_hexa(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_open_octagon_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_octagon_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_octagon(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);




  EXPORT_LIB void flgr2d_close_square_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_square_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_square(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_close_cross_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_cross_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_cross(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_close_hexa_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_hexa_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_hexa(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_close_octagon_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_octagon_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_octagon(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);




  EXPORT_LIB void flgr2d_open_tophat_square_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_square_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_tophat_square(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_open_tophat_cross_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_cross_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_tophat_cross(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_open_tophat_hexa_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_hexa_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_tophat_hexa(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_open_tophat_octagon_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_open_tophat_octagon_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_open_tophat_octagon(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);


  EXPORT_LIB void flgr2d_close_tophat_square_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_square_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_tophat_square(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_close_tophat_cross_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_cross_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_tophat_cross(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_close_tophat_hexa_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_hexa_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_tophat_hexa(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);

  EXPORT_LIB void flgr2d_close_tophat_octagon_fgBIT(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgUINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgUINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgUINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgINT8(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgINT16(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgINT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgFLOAT32(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB void flgr2d_close_tophat_octagon_fgFLOAT64(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);
  EXPORT_LIB FLGR_Ret flgr2d_close_tophat_octagon(FLGR_Data2D *imgdest, FLGR_Data2D *imgsrc, int size);


#endif

#ifdef __cplusplus
}
#endif
